class Settings:
    """存储《外星人入侵》的所有设置的类"""

    def __init__(self):
        """初始化游戏的设置"""
        # 游戏名称
        self.game_name = "Alien Invasion"
        # 屏幕宽度
        self.screen_width = 1200
        # 屏幕高度
        self.screen_height = 800
        # 背景颜色
        self.bg_color = (230, 230, 230)

        # 飞船移动速度
        self.ship_speed_factor = 1.5
        # 飞船的数目
        self.ship_limit = 3

        # 子弹的速度
        self.bullet_speed_factor = 3
        # 子弹的宽度
        self.bullet_width = 300
        # 子弹的高度
        self.bullet_height = 15
        # 子弹的颜色
        self.bullet_color = (60, 60, 60)
        # 限制子弹的数量
        self.bullets_allowed = 3

        # 外星人移动速度
        self.alien_speed_factor = 1
        # 外星人移动方向
        self.fleet_direction = 1
        # 外星人的下落速度
        self.fleet_drop_speed = 10
        # 设置加速值，加快游戏节奏
        self.speedup_scale = 1.1
        # 计分，每击中一个得多少分
        self.alien_points = 50
        # 分数随着等级提高，分值也提高
        self.score_scale = 1.5

    def initialize_dynamic_settings(self):
        """动态参数在这里重置"""
        self.ship_speed_factor = 1.5
        self.bullet_speed_factor = 3
        self.alien_speed_factor = 1
        self.alien_points = 50
        self.fleet_direction = 1

    def increase_speed(self):
        """一些动态的参数值，通过这里进行改变,从而加快速度"""
        self.ship_speed_factor *= self.speedup_scale
        self.bullet_speed_factor *= self.speedup_scale
        self.alien_speed_factor *= self.speedup_scale
        self.alien_points = int(self.alien_points * self.score_scale)
